In [4]:
import glob,os
images=glob.glob("images/*")
from skimage.filters import gabor
from skimage import io
from matplotlib import pyplot as plt
import cv2
import seaborn as sns
sns.set(style="whitegrid")## import the necessary packages
import numpy as np
from skimage.filters import gabor_kernel
In [33]:
all_params=[('images\\Fabric1.jpg',{"frequency":0.05,"theta":1.5,"bandwidth":2}),
           ('images\\Fabric2.jpg',{"frequency":0.025,"theta":1.5,"bandwidth":2}),
           ('images\\Fabric3.jpg',{"frequency":0.025,"theta":1.5,"bandwidth":2}),
           ('images\\Fabric4.jpg',{"frequency":0.025,"theta":1.5,"bandwidth":2}),
           ('images\\Fabric5.jpg',{"frequency":0.04,"theta":0,"bandwidth":2}), 
           ('images\\Fabric6.jpg',{"frequency":0.05,"theta":0,"bandwidth":2}),
           ('images\\Fabric7.jpg',{"frequency":0.05,"theta":0,"bandwidth":2}),
           ('images\\Fabric8.jpg',{"frequency":0.04,"theta":0,"bandwidth":2}),
           ('images\\Fabric9.jpg',{"frequency":0.025,"theta":0,"bandwidth":2}), 
           ('images\\Fabric10.jpg',{"frequency":0.025,"theta":0,"bandwidth":2}),
           ('images\\Fabric11.jpg',{"frequency":0.06,"theta":np.pi/2,"bandwidth":2}),
            ('images\\Fabric12.jpg',{"frequency":0.06,"theta":np.pi/2,"bandwidth":2}),
            ('images\\Fabric13.jpg',{"frequency":0.05,"theta":0,"bandwidth":2}),
            ('images\\Fabric14.jpg',{"frequency":0.05,"theta":np.pi/2,"bandwidth":2}),
            ('images\\Fabric15.jpg',{"frequency":0.05,"theta":0,"bandwidth":2}),
            ('images\\Fabric16.jpg',{"frequency":0.05,"theta":0,"bandwidth":2}),
            ('images\\Fabric17.jpg',{"frequency":0.05,"theta":np.pi,"bandwidth":2}),
            ('images\\Fabric18.jpg',{"frequency":0.025,"theta":np.pi/4,"bandwidth":2}),
            ('images\\Fabric19.jpg',{"frequency":0.025,"theta":-np.pi/4,"bandwidth":2}),
            ('images\\Fabric20.jpg',{"frequency":0.025,"theta":np.pi/2,"bandwidth":2})]
In [40]:
for img_path,params in all_params:
    gk = gabor_kernel(**params)
    fig,ax=plt.subplots(ncols=2,nrows=2,figsize=(16,12))
    
    image=io.imread(img_path)
    ax[0,0].imshow(gk.real)
    image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    ax[0,1].imshow(image,cmap="gray")
    
    filt_real, filt_imag = gabor(image, **params)
    ax[1,0].imshow(filt_real,cmap="gray")
    upper_limit=filt_real.mean()+filt_real.std()*2.7
    lower_limit=filt_real.mean()-filt_real.std()*2.7
    redacted=np.where((filt_real<upper_limit)&(filt_real>lower_limit),image,0)
    fig.suptitle(img_path.split("\\")[1].strip(".jpg"),fontsize=26)
    ax[1,1].imshow(redacted,cmap="gray")
    plt.pause(0.01)
In [106]:
for img_path,params in all_params:
    gk = gabor_kernel(**params)
    fig = plt.figure(figsize=(16,10))
    fig.suptitle(img_path.split("\\")[1].strip(".jpg"),fontsize=26)
    image=io.imread(img_path)
    image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    ax0=plt.subplot(221)
    ax0.imshow(image,cmap="gray")
    filt_real, filt_imag = gabor(image, **params)
    upper_limit=filt_real.mean()+filt_real.std()*2.7
    center_line=filt_real.mean()
    lower_limit=filt_real.mean()-filt_real.std()*2.7
    redacted=np.where((filt_real<upper_limit)&(filt_real>lower_limit),image,0)
    ax1=plt.subplot(222)
    ax1.imshow(redacted,cmap="gray")
    ax2=plt.subplot(212)
    ax2.plot(filt_real.flatten(),linewidth=0.2)
    ax2.plot(np.full(512*512,upper_limit),color="red")
    ax2.plot(np.full(512*512,lower_limit),color="red")
    ax2.plot(np.full(512*512,center_line),color="green")
    plt.pause(0.001)